package cn.edu.njust.alg.leetcode;

/**
 * 创建时间：2015年6月15日 上午11:47:37 项目名称：AlgorithmExercise
 * 
 * @author Zhou Xiumin
 * @version 1.0
 * @since JDK 1.7.0_21 文件名称：Leetcode_0_t.java 类说明：
 */
public class Leetcode_152_Maximum_Product_Subarray {
	
    public static int maxProduct(int[] nums) {
    	if(nums.length==1){
    		return nums[0];
    	}
    	int []max = new int[nums.length];
    	int []min = new int[nums.length];
    	max[0]=min[0]=nums[0];
    	int maxnum=nums[0];
    	for(int i=1;i<nums.length;i++){
    		max[i]=Math.max(Math.max(nums[i], nums[i]*max[i-1]),nums[i]*min[i-1]);
    		min[i]=Math.min(Math.min(nums[i], nums[i]*max[i-1]),nums[i]*min[i-1]);
    		if(maxnum<max[i]){
    			maxnum=max[i];
    		}
    	}

    	return maxnum;     
    }
	public static void main(String[] args) {
		int []nums={2,3,-2,4,-2};
		System.out.println(maxProduct(nums));
	}

}
